The present invention relates to computer-based editing systems and methods. More particularly, the present invention relates to a method and system for editing function curves in two dimensions, such as time and value.
One of the advantages of digital animation and digital post-production editing systems is the ease with which users can manipulate and edit animation objects to produce a desired result. Developers of such systems continually strive to provide simpler and more time effective methods to control this editing process.
One method of editing objects is through modification of function curves. A function curve is a line representing the value of a parameter of an object with respect to time. Changing the shape or location of the function curve causes an attendant change in the parameter and the object. One method of editing, or modifying, a function curve involves setting keys on the curve and modifying the position of the keys to change the shape and/or position of the curve. A key is a point, associated with a function curve, that has coordinates (x,y), such as time and value. The shape of function curve is determined by calculating, or interpolating, curve segments between the keys. Changing the position of a key causes its associated function curve to be recalculated to fit between the newly positioned key. Each key can be separately selected and modified, or multiple selections of keys can be operated on at once. In the prior art, the set of operations that can be applied to a multiple selection of keys is generally limited to some subset of operations, such as translation in time, and deletion. As a result, certain operations, such as scaling a multiple selection of keys, can be time consuming and inexact.
It is, therefore, desirable to provide a method and system for editing function curves that obviates or mitigates the disadvantages of the prior art. In particular, it is desirable to provide a method and system for editing function curves that permits the simultaneous modification of multiple keys within a graphical user interface.
According to a first aspect of the present invention, there is provided a method for editing an object in a computer-based editing system, comprising the steps of:
(i) defining a region containing selected keys associated with at least one function curve of an object, the region having a first and a second dimension;
(ii) modifying the region in at least one dimension;
(iii) shifting the selected keys in response to the modification to region; and
(iv) recalculating the at least one function curve in response to the shifted keys.
According to a further aspect of the present invention, there is provided a system for editing objects in an animation editor, comprising:
an input device for defining a two- dimensional region in an animation editor window, the region containing selected keys associated with at least one function curve of an object;
means to modify the region in at least one dimension;
means to shift the selected keys in response to the modification of the region, and
means to recalculate, in response to the shifting of the keys, the at least one function curve.